#!/usr/bin/env node

// Node CLI 应用入口文件必须要有这样的文件夹
// 如果是 Linux 或者 macOS 系统下还需要修改此文件的读写权限为 755
// 具体就是通过 chmod 755 cli.js 实现修改

// 脚手架的工作过程
// 1. 通过命令行交互询问用户问题
// 2. 根据用户回答的结果生成文件

const fs = require("fs")
const path = require("path")
const inquirer = require("inquirer")
const ejs = require("ejs")

inquirer.prompt([
    {
        type: "input",
        name: "name",
        message: "project name?"
    }
])
.then(answers =>{
    // console.log(answers)
    // 根据用户回答的结果生成文件

    // 模板目录
    const tmplDir = path.join(__dirname, "templates")
    // 目标目录
    const destDir = process.cwd()

    // 将模板下面文件全部转换到目标目录
    fs.readdir(tmplDir, (err, files) => {
        if (err) throw err
        files.forEach(file => {
            // console.log(file)
            // 通过模板殷勤渲染文件
            ejs.renderFile(path.join(tmplDir, file), answers, (err, result) => {
                if (err) throw err
                // console.log(result)
                // 将结果写到目标路径
                fs.writeFileSync(path.join(destDir, file), result)
            })
        })
    })
})